The virtual machine that describes the implementation includes about ten registers. There is a stack pointer, which refers to a stack that is implemented as a data structure separate from the heap. There is a pointer to a list of environments. That entire list is a heap object. A continuation register points to a list of instructions next to be executed; it is essentially the C register of an SECD machine. There is a register for returning taggedΓÇôpointer values from functions, a register for the topΓÇôlevel environment, and a couple of scratch or specialΓÇôpurpose registers.